⚡️ Speed up function get_code_fingerprint by 20% in PR #733 (deduplicate-better)
#735
+32
−8
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
⚡️ This pull request contains optimizations for PR #733
If you approve this dependent PR, these changes will be merged into the original PR branch
deduplicate-better.📄 20% (0.20x) speedup for
get_code_fingerprintincodeflash/code_utils/deduplicate_code.py⏱️ Runtime :
142 milliseconds→118 milliseconds(best of64runs)📝 Explanation and details
The optimization achieves a 20% speedup by inlining the docstring removal logic and replacing the expensive
ast.walk()traversal with a more efficient iterative approach.Key changes:
remove_docstrings_from_ast()function call, saving function invocation costsast.walk()with an explicit stack-based traversal that only visits nodes that can contain docstrings (FunctionDef,AsyncFunctionDef,ClassDef,Module)ast.walk()'s recursive generator patternPerformance impact by test case type:
The optimization specifically targets the docstring removal step, which previously consumed 24.4% of total runtime in the line profiler. By making the traversal more targeted and eliminating unnecessary node visits, the optimized version reduces this bottleneck while preserving identical functionality and output.
✅ Correctness verification report:
🌀 Generated Regression Tests and Runtime
To edit these changes
git checkout codeflash/optimize-pr733-2025-09-13T23.54.19and push.